perm filename MFHDR.DIF[MF,DEK] blob
sn#557216 filedate 1981-01-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 1,1
C00009 00003 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 5,5
C00013 00004 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 5,5
C00016 00005 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
C00019 00006 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
C00022 00007 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
C00025 00008 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
C00028 00009 1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
C00029 ENDMK
C⊗;
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 1,1
**** File 1) MFHDR.SAI[MF,DEK]/1P/1L
1) COMMENT ⊗ VALID 00006 PAGES
1) C REC PAGE DESCRIPTION
**** File 2) MFHDR.SAI[MF,DRF]/1P/1L
2) COMMENT ⊗ VALID 00007 PAGES
2) C REC PAGE DESCRIPTION
***************
**** File 1) MFHDR.SAI[MF,DEK]/1P/5L
1) C00008 00003 Declarations internal to MFSYS
1) C00014 00004 Declarations internal to MFNTRP
1) C00030 00005 Declarations internal to MFRAST
1) C00037 00006 Declarations internal to MFOUT
1) C00042 ENDMK
1) C⊗;
**** File 2) MFHDR.SAI[MF,DRF]/1P/5L
2) C00009 00003 Declarations internal to MFSYS
2) C00015 00004 Declarations internal to MFNTRP
2) C00031 00005 Declarations internal to MFRAST
2) C00039 00006 Declarations internal to MFOUT
2) C00044 00007 Macros for TOPS20 extended memory
2) C00054 ENDMK
2) C⊗;
***************
**** File 1) MFHDR.SAI[MF,DEK]/2P/17L
1) define WAITS = true, TENEX = false;
1) comment Do you want your proofmode output to be Press or XGP?;
1) define XGP = false, PRESS = true;
1) comment Do you want your on-line display to be Alto-ADIS or DataDisc?;
1) define DATADISC = true, ADIS = false;
1) comment Do you want Dover-style output modes supported?;
**** File 2) MFHDR.SAI[MF,DRF]/2P/17L
2) define WAITS = true, TENEX = false, TOPS20 = false;
2) comment Do you want your proofmode output to be Press or XGP or DVI?;
2) define XGP = true, PRESS = false, DVI = false;
2) comment Do you want your on-line display to be Alto-ADIS or DataDisc?;
2) define DATADISC = true, ADIS = false, NOONLINE = false;
2) comment Do you want Alphatype font capability?;
2) define ALPHATYPEMODE = true;
2) comment Do you want Dover-style output modes supported?;
***************
**** File 1) MFHDR.SAI[MF,DEK]/2P/29L
1) define ENABLED = true # report any arithmetic exceptions, floating or integer;
1) define IFWAITS = ⊂ifc WAITS thenc⊃;
**** File 2) MFHDR.SAI[MF,DRF]/2P/32L
2) define XMEM = false # makes even larger raster, only for use on 2060's;
2) define ENABLED = false # report any arithmetic exceptions, floating or integer;
2) comment currently, ALPHATYPEMODE conflicts with ENABLED, so don't turn both on;
2) define IFWAITS = ⊂ifc WAITS thenc⊃;
***************
**** File 1) MFHDR.SAI[MF,DEK]/2P/35L
1) define IFPRESS = ⊂ifc PRESS thenc⊃;
**** File 2) MFHDR.SAI[MF,DRF]/2P/40L
2) define IFTOPS20 = ⊂ifc TOPS20 thenc⊃;
2) define ENDTOPS20 = ⊂endc⊃;
2) define IFPRESS = ⊂ifc PRESS thenc⊃;
***************
**** File 1) MFHDR.SAI[MF,DEK]/2P/39L
1) define IFADIS = ⊂ifc ADIS thenc⊃;
**** File 2) MFHDR.SAI[MF,DRF]/2P/47L
2) define IFDVI = ⊂ifc DVI thenc⊃;
2) define ENDDVI = ⊂endc⊃;
2) define IFADIS = ⊂ifc ADIS thenc⊃;
***************
**** File 1) MFHDR.SAI[MF,DEK]/2P/43L
1) define IFDOVERMODES = ⊂ifc DOVERMODES thenc⊃;
1) define ENDDOVERMODES = ⊂endc⊃;
1) define nextline = ⊂('15&'12)⊃ # carriage-return and line-feed in print commands;
**** File 2) MFHDR.SAI[MF,DRF]/2P/54L
2) define IFNOONLINE = ⊂ifc NOONLINE thenc⊃;
2) define ENDNOONLINE = ⊂endc⊃;
2) define IFDOVERMODES = ⊂ifc DOVERMODES thenc⊃;
2) define ENDDOVERMODES = ⊂endc⊃;
2) define IFSPECRAST = ⊂ifc SPECRAST thenc⊃;
2) define ENDSPECRAST = ⊂endc⊃;
2) define IFXMEM = ⊂ifc XMEM thenc⊃;
2) define ENDXMEM = ⊂endc⊃;
2) IFTOPS20 define inchwl = ⊂intty⊃; ENDTOPS20
2) define nextline = ⊂('15&'12)⊃ # carriage-return and line-feed in print commands;
***************
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 5,5
**** File 1) MFHDR.SAI[MF,DEK]/5P/8L
1) ifc SPECRAST thenc redefine xpenmin=-305,xpenmax=270,ypenmax=199; endc
1) ENDWAITS
**** File 2) MFHDR.SAI[MF,DRF]/5P/8L
2) IFSPECRAST redefine xpenmin=-305,xpenmax=270,ypenmax=199; ENDSPECRAST
2) ENDWAITS
***************
**** File 1) MFHDR.SAI[MF,DEK]/5P/13L
1) define ypenmin=-ypenmax;
**** File 2) MFHDR.SAI[MF,DRF]/5P/13L
2) IFTOPS20
2) define xpenmin=-161,xpenmax=126,ypenmax=99 # legal pen range;
2) IFXMEM redefine xpenmin=-305,xpenmax=270,ypenmax=199; ENDXMEM
2) ENDTOPS20
2) define ypenmin=-ypenmax;
***************
**** File 1) MFHDR.SAI[MF,DEK]/5P/39L
1) ifc SPECRAST thenc redefine yrastmin=-700,yrastmax=1000; endc
1) DEBUGONLY redefine xrastmax=720,yrastmin=-100,yrastmax=560;
1) IFPRESS redefine xrastmax=xrastmax-10*bitsperwd; ENDPRESS
1) ENDWAITS
**** File 2) MFHDR.SAI[MF,DRF]/5P/43L
2) IFSPECRAST redefine yrastmin=-700,yrastmax=1000; ENDSPECRAST
2) DEBUGONLY redefine xrastmax=720,yrastmin=-100,yrastmax=560;
2) ENDWAITS
***************
**** File 1) MFHDR.SAI[MF,DEK]/5P/46L
1) comment \\{xrastmin} and \\{xrastmax} should be multiples of \\{bitsperwd};
**** File 2) MFHDR.SAI[MF,DRF]/5P/49L
2) IFTOPS20 define xrastmin=-72,xrastmax=720,yrastmin=-720,yrastmax=560 # raster bounds;
2) IFXMEM redefine xrastmin=-144, xrastmax=1512, yrastmin=-1700,yrastmax=1000;
2) ENDXMEM
2) DEBUGONLY redefine xrastmax=360, yrastmin=-360, yrastmax=360;
2) ENDTOPS20
2) comment \\{xrastmin} and \\{xrastmax} should be multiples of \\{bitsperwd};
***************
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 5,5
**** File 1) MFHDR.SAI[MF,DEK]/5P/67L
1) external integer xleft,xright,ylow,yhigh # active part of the raster;
**** File 2) MFHDR.SAI[MF,DRF]/5P/74L
2) IFTOPS20
2) IFXMEM comment The raster will live in sections 2 and up. Look at the last
2) page of this file for all the macros used to get to it;
2) ELSEC
2) external saf integer array rast[rast0:rast1] # the big raster workspace;
2) ENDC
2) ENDTOPS20
2) external integer xleft,xright,ylow,yhigh # active part of the raster;
***************
**** File 1) MFHDR.SAI[MF,DEK]/6P/57L
**** File 2) MFHDR.SAI[MF,DRF]/7P/1L
2) comment Macros for TOPS20 extended memory;
2) IFCR XMEM THENC
2) external procedure initxmem;
2) external procedure closexmem;
2) define rast!loc(x)=⊂(('2 lsh 18)-rast0+x)⊃; comment i.e. location(rast[x]);
2) define XQC = ⊂
2) quick!code
2) label l1, l2, l3, l4;
2) ⊃;
2) define XIN = ⊂
2) jrst 5, l1;
2) l1: 0;
2) l2(1);
2) l2:
2) ⊃;
2) define XOUT = ⊂
2) jrst 5, l3;
2) l3: 0;
2) l4;
2) l4:
2) ⊃;
2) external integer indir # addressing @INDIR gets the raster item whose
2) number is in register '15;
2) external integer xtemp # used with VAR!GETS!RAST when there's no place
2) else to put it;
2) define extend='123000000000 # extend instruction to reach: ;
2) external integer xblte # extended-blt instruction;
2) comment rast!gets!expr(rloc,expr) is rast[rloc]←expr;
2) define rast!gets!expr(rloc,expr)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC);
2) MOVE '14,ACCESS(EXPR);
2) XIN;
2) MOVEM '14,@INDIR;
2) XOUT;
2) END
2) ⊃;
2) comment var!gets!rast(var,rloc) is var←rast[rloc];
2) define var!gets!rast(var,rloc)=⊂
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
2) XQC;
2) MOVE '15,ACCESS(RLOC);
2) XIN;
2) MOVE '14,@INDIR;
2) XOUT;
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) comment rast!gets!rast!land!expr(rast,expr)
2) is rast[rloc]←rast[rloc] land (expr);
2) define rast!gets!rast!land!expr(rloc,expr)=⊂
2) XQC;
2) MOVE '13,ACCESS(EXPR); COMMENT 13←EXPR;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) ANDM '13,@INDIR;
2) XOUT;
2) END
2) ⊃;
2) comment rast!gets!rast!lor!expr(rloc,expr) is rast[rloc]←rast[rloc] lor (expr);
2) define rast!gets!rast!lor!expr(rloc,expr)=⊂
2) XQC;
2) MOVE '13,ACCESS(EXPR); COMMENT 13←EXPR;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) IORM '13,@INDIR;
2) XOUT;
2) END
2) ⊃;
2) comment rast!gets!rast!land!lnot!expr(rloc,expr)
2) is rast[rloc]←rast[rloc] land lnot (expr);
2) define rast!gets!rast!land!lnot!expr(rloc,expr)=⊂
2) XQC;
2) MOVE '13,ACCESS(EXPR); COMMENT 13←EXPR;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) ANDCAM '13,@INDIR;
2) XOUT;
2) END
2) ⊃;
2) comment var!gets!rast!lor!var(var,rloc) is var←rast[rloc] lor var;
2) define var!gets!rast!lor!var(var,rloc)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC];
2) XOUT;
2) IORM '14,ACCESS(VAR);
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
2) END
2) ⊃;
2) comment var!gets!rast!lsh!expr(var,rloc,shift) is var←rast[rloc] lsh shift;
2) define var!gets!rast!lsh!expr(var,rloc,shift)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC];
2) XOUT;
2) LSH '14,@ACCESS(SHIFT);
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) comment var!gets!rast!lsh!expr!land!const(var,rloc,shift,landconst)=
2) ⊂var←rast[rloc] lsh shift land const⊃;
2) define var!gets!rast!lsh!expr!land!const(var,rloc,shift,landconst)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC];
2) XOUT;
2) LSH '14,@ACCESS(SHIFT);
2) ANDI '14,LANDCONST; COMMENT so landconst<2↑18;
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) comment var!gets!rast!lsh!const!land!const(var,rloc,shiftconst,landconst)=
2) ⊂var←rast[rloc] lsh shiftconst land landconst⊃;
2) define var!gets!rast!lsh!const!land!const(var,rloc,shiftconst,landconst)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC];
2) XOUT;
2) LSH '14,SHIFTCONST;
2) ANDI '14,LANDCONST; COMMENT so landconst<2↑18;
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) comment var!gets!rast!lsh!expr!lor!var(var,rloc,shift)
2) is var←(rast[rloc] lsh shift) lor var;
2) define var!gets!rast!lsh!expr!lor!var(var,rloc,shift)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC];
2) XOUT;
2) LSH '14,@ACCESS(SHIFT);
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
2) IORM '14,ACCESS(VAR);
2) END
2) ⊃;
2) comment var!gets!two!rast!cols(var,rloc,shift) is
2) var←(rast[rloc] lsh shift)+(rast[rloc+rspan] lsh shift-36);
2) define var!gets!two!rast!cols(var,rloc,shift)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) MOVE '13,@INDIR; COMMENT 13←RAST[RLOC];
2) ADDI '15,RSPAN; COMMENT 15←RLOC+RSPAN;
2) MOVE '14,@INDIR; COMMENT 14←RAST[RLOC+RSPAN];
2) XOUT;
2) MOVE '15,ACCESS(SHIFT); COMMENT 15←SHIFT;
2) LSH '13,0('15); COMMENT 13←RAST[RLOC] LSH SHIFT;
2) LSH '14,-36('15); COMMENT 14←RAST[RLOC+RSPAN] LSH (SHIFT-36);
2) ADD '13,'14; COMMENT 13←RESULT;
2) MOVEM '13,ACCESS(VAR);
2) END
2) ⊃;
2) define var!gets!seven!rast!lors(var,rloc)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) SETMI '13,@INDIR; COMMENT 13←ADDR(RAST[RLOC]);
2) MOVE '14,0('13);
2) IOR '14,1('13);
2) IOR '14,2('13);
2) IOR '14,3('13);
2) IOR '14,4('13);
2) IOR '14,5('13);
2) IOR '14,6('13);
2) XOUT;
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) define var!gets!seven!rast!lands(var,rloc)=⊂
2) XQC;
2) MOVE '15,ACCESS(RLOC); COMMENT 15←RLOC;
2) XIN;
2) SETMI '13,@INDIR; COMMENT 13←ADDR(RAST[RLOC]);
2) MOVE '14,0('13);
2) AND '14,1('13);
2) AND '14,2('13);
2) AND '14,3('13);
2) AND '14,4('13);
2) AND '14,5('13);
2) AND '14,6('13);
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
2) XOUT;
2) MOVEM '14,ACCESS(VAR);
2) END
2) ⊃;
2) define xbltit(toloc,fromloc,bltcnt)=⊂
2) XQC;
2) MOVE '13,ACCESS(BLTCNT);
2) MOVE '14,ACCESS(FROMLOC);
2) MOVE '15,ACCESS(TOLOC);
2) XIN;
2) EXTEND '13,ACCESS(XBLTE);
2) XOUT;
2) END
2) ⊃;
2) ELSEC
2) define
2) rast!gets!expr(rloc,expr)=
2) ⊂rast[rloc]←expr⊃,
2) var!gets!rast(var,rloc)=
2) ⊂var←rast[rloc]⊃,
2) rast!gets!rast!land!expr(rloc,expr)=
2) ⊂rast[rloc]←rast[rloc] land (expr)⊃,
2) rast!gets!rast!lor!expr(rloc,expr)=
2) ⊂rast[rloc]←rast[rloc] lor (expr)⊃,
2) rast!gets!rast!land!lnot!expr(rloc,expr)=
2) ⊂rast[rloc]←rast[rloc] land lnot (expr)⊃,
2) var!gets!rast!lor!var(var,rloc)=
2) ⊂var←rast[rloc] lor var⊃,
2) var!gets!rast!lsh!expr(var,rloc,shift)=
2) ⊂var←rast[rloc] lsh (shift)⊃,
2) var!gets!rast!lsh!expr!land!const(var,rloc,shift,landconst)=
2) ⊂var←rast[rloc] lsh (shift) land (landconst)⊃,
2) var!gets!rast!lsh!const!land!const(var,rloc,shiftconst,landconst)=
2) ⊂var←rast[rloc] lsh (shiftconst) land (landconst)⊃,
2) var!gets!rast!lsh!expr!lor!var(var,rloc,shift)=
2) ⊂var←(rast[rloc] lsh (shift)) lor var⊃,
2) var!gets!two!rast!cols(var,rloc,shift)=
2) ⊂var←(rast[rloc] lsh (shift))
2) +(rast[rloc+rspan] lsh ((shift)-36))⊃,
2) var!gets!seven!rast!lors(var,rloc)=
2) ⊂var←rast[rloc] lor rast[rloc+1] lor rast[rloc+2] lor
2) rast[rloc+3] lor rast[rloc+4] lor
2) rast[rloc+5] lor rast[rloc+6]⊃,
2) var!gets!seven!rast!lands(var,rloc)=
2) ⊂var←rast[rloc] land rast[rloc+1] land rast[rloc+2] land
2) rast[rloc+3] land rast[rloc+4] land
2) rast[rloc+5] land rast[rloc+6]⊃
2) ;
1) MFHDR.SAI[MF,DEK] and 2) MFHDR.SAI[MF,DRF] 1-22-81 11:12 pages 6,7
2) ENDC
***************